home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 3 / BBS in a box - Trilogy III.iso / Files / Tele / A / AnalyzeCL.9 Folder / AnalyzeCL Notes next >
Encoding:
Text File  |  1989-05-03  |  30.4 KB  |  685 lines  |  [TEXT/QED1]

  1.  
  2.        'Analyze CL 0.9' Users Guide/Notes
  3.        
  4.        
  5. ** Preface **
  6.  
  7. Inspiration for the program was provided by B.Delacey's BASIC Callerlog
  8. Analyzer. However, this program was written from scratch and does not
  9. borrow code from other sources.
  10.  
  11.  
  12. ** How to use it... **
  13.  
  14. Copy one of more 'Callerlog' files into a file called 'Callerlog Archive',
  15. in chronological order.  If you only have one Callerlog, you can just
  16. rename it.  (Note: I did it this way because I like to list the callerlog
  17. when I logon, and I like to keep it short. Before I clear it, I append it
  18. to 'Callerlog Archive'.)  
  19.  
  20. Run 'AnalyzeCallers' (on the same folder as 'Callerlog Archive').
  21.  
  22. Just to see what it will do, respond with <CR> to all questions
  23. all questions, then look at 'CL Analysis'. 
  24.  
  25. ** Options **
  26.  
  27. == File Name ==
  28.  
  29. Version 0.88+ allows one to pick the input file name. (Version 1.0 will
  30. have a Mac interface.)  Unfortunately, the std. 'readln' rtn. does not
  31. support backspace, so typing mistakes are to be avoided. A <return> will
  32. cause AnalyzeCL to assume input in "Callerlog Archive", which should be
  33. on the same folder as AnalyzeCL.  You may access other folders by
  34. specifying the pathname here, though I currently allow 32 char. max.
  35.  
  36. == Start of Day Time ==
  37.  
  38. This time is used to set the hour of 'Start_Time'. This date/time 
  39. determines which day a particular login will be attributed to. I.e.,
  40. if set to 8 (AM), a 7:30 login on Wed., 11/25 will be tallied as a
  41. Tuesday event. This time is very important in determining Up/Down time.
  42. The default is 4 AM which is probably good for 24 hr systems.
  43.  
  44.  
  45. == Start/End Date ==
  46.  
  47. These restrict the analyzer to a subset of the total Callerlog. If <cr>
  48. is entered, the default will be the first time/last time on the file. The
  49. options may be set separately, i.e you can specify a start_time and use 
  50. the default end time.
  51.  
  52. Dates must be entered in 'MM/DD/YY' format, but this version is smart
  53. enough to handle short forms such as '9/1', '10/22', '9/1/86'. (Version
  54. 0.7 required complete specification with leading zeros.) If no year
  55. is specified, '/88' is assumed.
  56.  
  57. If a start date is explicitly entered, then a reponse of 'w' or 'W' to the
  58. 'End Date' prompt will set the end date to one week past the start date. A
  59. number ranging from 2-9 may follow the 'w', resulting in analysis of that
  60. number of weeks.
  61.  
  62. If a start date is explicitly entered, then a reponse of 'm' or 'M' to the
  63. 'End Date' prompt will set the end date the effective end of the month.
  64.  
  65.  
  66.  
  67. == ' List users as processed? ([Y]/N) : ' ==
  68.  
  69. Unless 'N' is entered, the login time and user name of each caller will
  70. scroll on the screen as it is processed. This slows the program by a
  71. measurable amount (0-5%), but it's reassuring to see that it's really
  72. doing something, especially on long input files.
  73.  
  74. == ' Output condensed Callerlog? (Y/[N]) : ' ==
  75.  
  76. If 'Y' or 'y' is entered, Analyze_CL will created a file named 'Condensed
  77. CL' containing one record for each call. This record shows the following:
  78.     Time of call
  79.     User name
  80.     Elapsed time of call
  81.     Total # of logins for this user including this one.
  82.     Number of private messages sent for this call only.
  83.     Number of public messages sent  for this call only.
  84.     Number of files downloaded  for this call only.
  85.     Number of files uploaded    for this call only.
  86.     Number of text files read   for this call only.
  87.  
  88. == ' Long line format (>80 columns)?  ([Y]/N) : ' ==
  89.  
  90. If 'Y' or 'y' is entered, Analyze_CL will include total connect time
  91. and last login date for each user. This necessarily extends the report
  92. line past 80 columns, so if this information is not wanted or you want
  93. to fit the output into narrower format, answer 'N'.
  94.  
  95. == ' Direct output to printer? (Y/[N]) : ' ==
  96.  
  97. If 'Y' or 'y' is entered, Analyze_CL will send the output directly
  98. to the printer, rather than saving as a file. I still need to tweek this
  99. a bit as there are a few extraneous formfeeds. If the 'Long line format'
  100. is also selected, the printer is switched to condensed mode and 8 lines
  101. per inch vertical spacing.
  102.  
  103. == ' Save file references separately? (Y/[N]) : ' ==
  104.  
  105. If 'Y' or 'y' is entered, Analyze_CL will create a file called 'File Ref.s'
  106. that will contain a list of files that were referenced within the specified
  107. interval.  Each line will contain the following data:
  108.     Upload flag.     'U' if file was uploaded else ' '.
  109.     Access count.    # of times the file was downloaded.
  110.     Not found cnt.   # of times the file was 'not found'.
  111.     Cancelled cnt.   # of times the file was cancelled, for any reason.
  112.     Reference date.  Last date that the file was referenced.
  113.     Name.            The actual file name. 
  114.     
  115. All fields are separated with tabs. The file is sorted in ascending order
  116. according to file name.
  117.  
  118.  
  119. ** What it does... **
  120.  
  121. Looking at the 'CL Analysis' file will show what the program does.  However,
  122. a few comments are in order.  Everytime a 'Connection made' is found, the
  123. matching baud rate counter is bumped and the time is extracted. The entire
  124. session, up until 'Logged off', is 'logged' as occuring at this time.
  125. I.e., if someone logs on at 6:55 and DLs 10 files, 10 ia added to the DL
  126. entry of 6:00-6:59, even though some of this activity was after 7:00.
  127.  
  128. Events occuring before the specified 'Start of Day time' are treated as
  129. occuring on the previous day with respect to the weekly, monthly, and
  130. day_of_week reports. E.g.,assuimng a 4 AM start hour, a logon at 1 AM
  131. Monday  counts as a Sunday login. A week is defined as the 7-day (604,800
  132. seconds) period beginning at the Start_time.
  133.  
  134.  
  135. All listed times are either time of day, or are given as 'HHH:MM', where
  136. hours may exceed 24. Data collection is taken to the second, but is rounded
  137. to the minute for display.
  138.  
  139. I attempted to collect up/downtime data. This report is based on the
  140. assumption that if the BBS was up on a particular day, at least one
  141. person would call it.  *Any* references to/on a day (such as a boot) will
  142. set the flag indicating that the BBS was up on that day. In this instance
  143. day intervals are defined as starting at the same time as the Start_time.
  144. That is is the StartTime is 7 PM, days will run from 7 PM till 7 PM.
  145.  
  146.  
  147. ** Possible problems  **
  148.  
  149. The program captures all the data in memory, so huge Callerlogs
  150. may cause premature completion.  The memory use is proportional to the
  151. number of *different* file and user references. Multiple references to the
  152. same file or user do not use extra memory. 
  153.  
  154.  
  155.  
  156. ** Probable Enhancements **
  157.  
  158. Mac interface.
  159. User-specified output files.
  160. User-selectable reports.
  161. Ability to save internal database as a separate file. The file format will
  162. be released so that  others may write special purpose analysis programs
  163. without scanning and parsing Callerlogs.
  164.  
  165.  
  166. Suggestions/comments are welcome!
  167.  
  168.  
  169. ** The program **
  170.  
  171. The program is over 2400 lines of generic TML Pascal. (About 80 hrs.)
  172. I will release the source for $25 and a agreement to credit work that is
  173. reused.
  174.  
  175.  
  176. ** Changes from Version 0.7 to 0.8 **
  177.  
  178. Version 0.8 has fixed several bugs including:
  179.  
  180.     Counting local connects.
  181.     Handling 'Uploads' correctly, including overwrite case.
  182.     Handling 'Download cancelled by sysop'
  183.     Numerous internal changes to improve Start/End range handling.
  184.     Automatic handling of different messages bases: only the highest
  185.         referenced is listed.
  186.     Others that I've forgotten...
  187.     
  188. This version adds the 'produce Condensed CL' option.
  189.  
  190. Logins out of chronological sequence are noted. This generally indicates
  191. that either Callerlogs were included in the "Callerlog Archive" out of
  192. order, or that sections of a Callerlog occur twice, which happens if you
  193. copy a callerlog into the archive without clearing it, then copy a later
  194. copy of the same callerlog, with some of the same records, into the archive.
  195.  
  196. Metered menus are now supported. Analyze_CL will pick up the names of
  197. the first three menus referenced and print them in the final report
  198. along with an ID/index #.  This number is a column header in the other
  199. reports (where appropriate), in which the time spent in the menu is
  200. given as a percent of total. Menus referenced after the first three are
  201. ignored. If you don't use metered menus, the reports will not indicate
  202. any sign of them.
  203.  
  204. The reports have been tweaked so that they will fit into 80-column output
  205. if 2 or fewer menus are referenced.
  206.  
  207. File names of greater than 32 characters are truncated to 32.
  208.  
  209. Although it's not a new feature, this was not previously documented:
  210.  
  211.     If a file has been uploaded in the interval of the report,
  212.     an  asterick precedes the name in the DL report.
  213.     
  214. A lot more feedback is provided during execution. Note
  215. the blinding speed of the sorts!
  216.  
  217. As you may note, the capability to sort by name, as opposed to access
  218. count, has been deleted. (I never used it.) The new version does maintain
  219. the list as sorted by name, so that files/users with the same access/login
  220. count are sorted by names. This is equivalent to doing a secondary sort
  221. by name.  Let me know if you need sorting by name.
  222.  
  223. And, finally, I've strengthened the wording of the 'shareware' statement.
  224. If you don't think this program is worth $4.78, then don't use it.
  225.  
  226. ** Version 0.84 **
  227.  
  228. Several bugs have been fixed, and a few new features added. Frankly, I
  229. can't remember what they all are other than the public messages column
  230. of the weekly report has been fixed, the Condensed Callerlog output is
  231. as documented, and the Up/Down time day range has been modified slightly.
  232. The order of the reports is slightly different, and the Connect report
  233. includes the percentages at different baud rates.
  234.  
  235.  
  236. ** Version 0.86 **
  237.  
  238. The Start_time logic is now correct, correcting several minor problems
  239. in terms of logging 'by_day' and Up/Down time.  This change also allows
  240. the user to make consistent weekly interval studies, i.e. the user can
  241. control the Start_time/End_time closely enough to run a series of 
  242. connected analyses.  (This concept is extremely difficult to explain
  243. without several detailed examples, and my revenue from AnalyzeCL is too
  244. small to go to the effort. Play around with some very simple test files
  245. and you'll figure it out.)
  246.  
  247. The Hourly and Day_of_Week reports have been changed to start on the
  248. Start_Date/Hr.  That is, if the first call in the Callerlog Archive 
  249. starts on a Wednesday, the Day_Of_Week report will run from Wed. to 
  250. Tuesday.
  251.  
  252. As noted in the 'Long output format' section, Total Connect Time &
  253. Last Login Date is shown for individual users if this option is picked. 
  254.  
  255. Metered Menus:
  256.  
  257. Menus are rounded differently: 0 minutes is 30 seconds, 1 minute is
  258. 1:30, and so on. This should improve the accuracy of the reports, as
  259. short menus may show up where they didn't before. 
  260.  
  261. Also, a meter is closed automatically if the user disconnects or times
  262. out without actuating the 'Meter turned off...' line.
  263.  
  264. *** Important New Feature in Version 0.86 ***
  265.  
  266. I started getting fed up with editing >400K Callerlog Archives, so I
  267. added file chaining, allowing the user to switch input files in midstream.
  268. E.g., if the file 'Callerlog Archive' has the last line :
  269. >  "CL Oct"
  270.   then input processing will continue with the file "CL Oct". If this file
  271. ends with:
  272. > "CL Nov"
  273.   then subsequent callerlog data will taken from "CL Nov".
  274.  Technical details (syntax): The first character must be '>' and
  275. the file name must be enclosed in quotes. ">>>" will do as well, and
  276. may be easier to spot.  Any data within a file past this line will be
  277. ignored.
  278.  
  279.  
  280. That's all I can remember for now, though I probably included some other
  281. fixes/enhancements that I've forgotten.  Keep those cards and letters
  282. coming!  (Several of these changes were user-suggested.)
  283.  
  284.  
  285. *** Version 0.88 ***
  286.  
  287. The 'W' option for End_date is available and documented. See above for
  288. details.
  289.  
  290. The 'Save file references' option exists.  A future version of FSP (File
  291. Section Processor) will use this file to enhance its capabilities. For
  292. example, FSP will be able to run through the RRHost file system and mark
  293. any files that have not been referenced within 'n' days.
  294.  
  295. The bug that revealed itself as a incorrect end_date, which caused a very
  296. long Up/Downtime report, was fixed with the assistance of John Gillett,
  297. who provided a Callerlog Archive with which to duplicate the problem
  298. reliably. (It's easy to fix a bug if you can force it to happen. The
  299. intermittent ones cause the problems.)
  300.  
  301. Usage figures are now calculated on a Total, Weekly, Monthly, Hourly,
  302. and Daily (Day_of_Week) basis.  This is a *lot* harder than it would
  303. first appear, particularly in the Hourly and Daily cases, as these
  304. represent separate time chunks each of which may or may not be within
  305. the Start-End interval.  I suspect that there is a subtle bug within
  306. the Day_of_week usage, but I'm releasing .88 anyway. If I'm right, it
  307. shows up as a discrepancy on the last day of the interval.
  308.  
  309. Usage is based on (Connect Time * 100 ) DIV Total time. (Accurate 
  310. determination of the total is the hard part.  It is important to note 
  311. that the 'Total' connect on the Hourly report is not used. This figure
  312. represents the total time of calls initiated within the particular hour,
  313. which is used to calculate average call length and menu percentages. The
  314. total used in the Usage calculations is a separate number containing the
  315. connect time within each hour. E.g. a call from 17:30 to 19:10 will add
  316. 1800 seconds to the 17 hour slot, 3600 to the 18 hr slot, and 600 to the
  317. 19th slot.   Boundary conditions such as this are ignored for other cases,
  318. all of which have subtantially longer intervals and fewer boundaries,
  319. reducing the probability of problems with crossings.
  320.  
  321. In conclusion, the Usage figures will be generally correct, but subtle
  322. sources of error remain, and the results may be inaccurate in some
  323. cases.
  324.  
  325. As before, there may have been other changes, but that's all I can 
  326. remember right now.
  327.  
  328.  
  329. *** Version 0.881 ***
  330.  
  331. Version 0.881 handles 'The .... BBS is ready for calls...' with less
  332. restriction. Prior versions required 'The' in the first three
  333. characters of the line, and that 'ready' be in column 20. Version 0.881
  334. still requires the first condition (in order to detect boots within a
  335. connect session, i.e. between 'Connection made...' and 'Logged off...'.)
  336. but the 'ready' may be in any column as long as it's present. The
  337. time/date at the end of the line must use the same format as Red Ryder
  338. Host 1.01.
  339.  
  340. The new utilities 'ArchiveCL' and ZapCLArch' are specifically designed
  341. to be used with Red Ryder Host and AnalyzeCL in order to provide accurate
  342. boot counts regardless of Cmd#50 application invocations. See associated
  343. documentation (for those utilities) for details.
  344.  
  345.  
  346. *** Version 0.883 ***
  347.  
  348. Version 0.883 has several changes:
  349.  
  350. 1)  Previous versions of AnalyzeCL required dates in the exact form that
  351. RRHost puts them out: 'MM/DD/YY at HH:MM:SS', at the end of a line. This
  352. version includes substantial (but not infallible) validity testing and uses
  353. a much slower and more flexible date conversion routine if necessary, thus
  354. accepting dates with no leading zeros (2/9/88), non-24hr time (6:18:20 
  355. PM), and various other bad formats.
  356.  
  357. The Start-Time is an exception in that AnalyzeCL requires it to be correct, 
  358. i.e. ' at ' should appear 8 characters from the end of the line for 
  359. AnalyzeCL to recognize that the line contains a time.
  360.  
  361. All non-standard times are logged as anomalies, with an indication as to why
  362. AnalyzeCL flagged it, regardless of whether it was able to determine the 
  363. correct date/time.
  364.  
  365. (Date/time conversions are done at least twice for every call and are quite 
  366. important in terms of processing speed. This is why validity checking was 
  367. NOT done.  Development versions with simple validity checking were running 
  368. about 4 percent longer than .881 so this code was optimized even more, using 
  369. inline code for every digit of the time/date. By doing so, the performance 
  370. is roughly the same as 0.881.) 
  371.  
  372. 2)  Start/end time specification defaults to 1988 rather than 1986. 
  373. (AnalyzeCL has been around longer than it seems!)
  374.  
  375. 3)  AnalyzeCL now tallies External Application calls.  This effort is not 
  376. finished and future versions will probably include more detailed reports, 
  377. but this version will list all external applications that are called, how 
  378. many times each is called, and the last date of reference if the following 
  379. format is used within the callerlog.
  380.  
  381.     A )   'Ext' should be in the first three columns of the line.
  382.     B )   The application name should be enclosed within '<' and '>', as
  383.           file names are currently handled.
  384.     C )   If a pathname is used, all folder names will be dropped, again,
  385.           just like file names. (This is not coincidental....)
  386.  
  387.     Example:
  388.     External Application called : <Mystery>
  389.  
  390. If no external application calls are listed in the Callerlog, this report
  391. will not appear in the output.
  392.  
  393. 4)  AnalyzeCL now monitors memory usage and will terminate gracefully if it
  394. starts to run out.
  395.  
  396. 5)    AnalyzeCL limits the interval to a year (31557600 seconds), thus 
  397. avoiding stepping on memory outside of arrays.  This particular feature 
  398. wasn't extensively tested, so there still may be some problems for very 
  399. large time intervals, especially in usage percentages.
  400.  
  401. Another Shareware plea....
  402.  
  403. It has come to my attention that there are people using AnalyzeCL without 
  404. paying, claiming that it isn't good enough 'yet'.  While I admit that 
  405. the program is far from perfect, I claim that it provides a very useful
  406. function AS IS, and that they wouldn't be using it at all if it wasn't
  407. worth the something.  I challenge anyone who is using this program to try
  408. to do any of its functions, such as making a list of users, or a list of
  409. file DLs, by hand, and then time how long it takes.  Put some value on your
  410. time and then decide if this program is worth the token offering that
  411. I request.  The reason the amount is so small is that I'm certain that this
  412. (and my other utilities) can save the RRHost Sysop that much time and effort
  413. in ONE use, so that a reasonable person can't help but send the cash.  None
  414. of my utilities (with the possible exception of FSP, once one gets the hang 
  415. of it) is indispensable, including this one.  A sysop doesn't really need to 
  416. have as list of DLed files, but if you find it useful enough to use it, then
  417. you owe me a payment.
  418.  
  419. Also, it has come to my attention that AnalyzeCL is being distributed via
  420. channels other than GEnie.  This is fine, but please keep this file with it.  
  421. I don't wish to repeat the information contained herein, and there have been 
  422. some bug reports that are explained here.
  423.  
  424. It's getting late and I have FSP work to do, so I'll call it quits.  The
  425. next AnalyzeCL will probably have more support for external applications
  426. and may have some sort of histogram capability.  There may be some internal
  427. improvements to speed it up as well.
  428.  
  429.  
  430. *** Version 0.89 ***
  431.  
  432. Bug fixes:
  433.  
  434. 1)  The method of calculating the amount of time spent in a given day of the 
  435. week (Sun., Monday, etc) was wrong, leading to incorrect usage percentages.
  436. This problem is fixed.  The fix improves accuracy as well, taking partial
  437. days into account, whereas the old method (even it worked as originally 
  438. intended) assumed 86400 second days regardless of when the exact start &
  439. end times occurred.
  440.  
  441. 2) A very difficult-to-track bug that occasionally resulted in erroneous 
  442. Menu 3 percentages for Monday in the Day of Week report was fixed. (This was 
  443. actually caused by a subscript error in the hourly data collection which is 
  444. why it was so hard to find.)
  445.  
  446. 3) There may have been some more, but I'm not sure.  I did double check all
  447. the boundary conditions to make sure connect time was being charged to the 
  448. correct slots.
  449.  
  450. I was reluctant to release a new version with JUST bug fixes, so....
  451.  
  452. Improvements:
  453.  
  454. 1) Metered menu validity checking is done.  If the value of a meter, when
  455. turned off, is over 256, OR a meter is active when a user logs off, the
  456. time is assumed to be <0>, but the problem is flagged in the anomalies 
  457. section, as well as to the screen.
  458.  
  459. 2) The first 31 days of the sample are listed individually.  This is very 
  460. similar to what one would see in the 'Day of Week' report if the sample size 
  461. is one week or less, but the records are identified by date rather than by 
  462. day.  The report is limited to 31 days.
  463.  
  464. 3) A 'Usage Map' report is produced.  This is a graph of Time-of-day (X) vs. 
  465. Date, with each point indicating whether the BBS is in use during that 
  466. interval.  Resolution is every 20 minutes.
  467.  
  468. Example:
  469.    4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23  0  1  2  3
  470.    |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  471. 22 ::::::#:::#::##:::##::###:##:::::::#::####::#######:##:##:##:::::#::::::
  472. 23 :::::::::#:#:::::########::::::::#:##:######:###:###:######::##:::::::::
  473. 24 ::::#:::::####:##:::::::::#:::#####:#######:::########::#########:::::::
  474. 25 ::::::::#####:##::::::##:##::###:::#::######:###:#######:###
  475.  
  476. On the 22nd, there were calls between 6:00-6:20,7:20-7:40,8:20-9:00...
  477. On the 23rd, the BBS was active between 7:20-8:40, and so on.  No one called 
  478. the BBS between 2 AM and 5:20 on any day during the sample.
  479.  
  480. A ':' means that the BBS was idle during that interval, while a '#' means 
  481. one or more people called, though it may have been a very short call. It 
  482. doesn't mean the BBS was busy for 20 minutes.
  483.  
  484. This Map is intended to be a good way to get a snapshot of BBS usage.  Let 
  485. me know how it can be improved.
  486.  
  487. Also, I considered adding another report that showed up to a week of
  488. activity  in 3 hour increments.  Anyone interested?
  489.  
  490. I've also come up with a design that will allow limited user formatting, 
  491. which may (or may not) be in the next version.  Some sort of improved 
  492. searching may be improved as most of AnalyzeCL time is spent looking 
  493. for/comparing user & file names.
  494.  
  495.  
  496. *** Version 0.891 ***
  497.  
  498. Bug fixes:
  499.  
  500. 1)  The Usage Map, which only records data up to 31 days, does not print
  501. extra (and erroneous) output for longer periods.
  502.  
  503. 2) The usage figures of the 'Day-of-Week' report are now correct.*
  504.  
  505. 3) The usage figures of the 'Hourly' report are now correct.*
  506.  
  507. 4) I forgot to mention it on .890, but the line count is now a LongInt, so
  508. line counts of over 32K don't go negative.
  509.  
  510. *  I was embarassed to find these problems, as they shouldn't have been
  511. there.  By way of explanation (not to be taken as an excuse) I'll point
  512. out that it is tricky to come up with the correct totals (the divisor of
  513. the %) for repeating intervals across an abitrary time span. E.g., give T1
  514. & T2 are both date/times in seconds, how much of the interval fell on a
  515. Monday, how much fell on a Tuesday, etc..  The bigger problem is that it
  516. is virtually impossible to analyze a real CL by hand to see what the
  517. output should be,  and test CLs are, by definition, simpler than real
  518. ones. 
  519.  
  520. Improvements:
  521.  
  522. 1) Checking for 'Logged off, with metered menus pending' created a lot of
  523. output, as this seems to be a common occurence.  I changed the logic so
  524. that this error shows up on the screen, for those who are interested, but
  525. does not appear in the output file.  Values of over 256 are still logged,
  526. but this only happens if a metered menu is active when the 'Meter' is
  527. turned off, i.e. 'Meter turned off...' is ignored is there isn't a
  528. 'Accessed metered menu...' preceding it in the same session.
  529.  
  530. 2) If a Start_Date is entered...
  531. The user may enter 'Wn' (or 'wn') as the End-date where n = 2-9.  This
  532. will cause the end-time to be set so that AnalyzeCL will process <n> weeks
  533. of data. E.g., 'W2' will cause 2 * 604800 seconds to be analyzed.
  534.  
  535. The user may also enter 'M' or 'm' as the end_date, which will set the
  536. end-date to the last day of the month (effectively).  For example, if the
  537. start date ius set to '3/1' and 'M' is entered as the end date and the
  538. start hour is defaulted to 4 AM, then AnalyzeCL will process all entries
  539. between 4 AM on 3/1/88 to 4 AM on 4/1/88.  If the start date is set to,
  540. say, 3/15 with an end date of 'M', then it will process from 3/15 to 4 AM,
  541. 4/1.
  542.  
  543. Both these options apply only if a start date is entered.
  544.  
  545.  
  546.  
  547. ** Notes on what I didn't do and why....  **
  548.  
  549. This section addresses some suggestions that I haven't implemented.
  550.  
  551. The reason the new daily & usage map reports are restricted to 31 days is
  552. to minimize storage requirements, and that very long periods would be
  553. difficult to read.  In any case, it is possible to run multiple passes and
  554. put together reports that exceed this limit.  (E.g., run AnalyzeCL on
  555. Feb., then March, and edit the two reports together.)
  556.  
  557. It was suggested that analysis of the last 31 days would be better than
  558. the first.  I agree, but I expect that most users can run intervals of 31
  559. days or less so that both reports cover the last 31 days.  If AnalyzeCL
  560. were to explicitly  record the last 31 days, it would have to record ALL
  561. the data (requiring lots of memory) or it would have to shift data around
  562. as it was superceded.  It is much simpler to just do the first 31 days and
  563. require the user to analyze short periods if they want these reports.
  564.  
  565. It was suggested that ' ' would be better than ':' as the 'idle' character
  566. in the Usage Map, but this does not take into account analyses that are
  567. not even multiples of a day.  The use of ':' shows that that time was
  568. analyzed but the BBS was not in use, as opposed to 'that time was not
  569. analyzed'. (See the last line in the usage map example in '.89 Changes'.)
  570.  
  571. A number of people have suggested that AnalyzeCL might put out histograms
  572. of usage or logins.  While I won't rule out such things completely, they
  573. are slightly contrary to the philosophy of AnalyzeCL.  The intent is to
  574. extract as much information as possible from the callerlog and present it
  575. in a usable manner. Most of the reports have to be done in a
  576. context-sensitive fashion, which means that AnalyzeCL has to look at all
  577. of the data to come up with the right numbers.  In other words, the
  578. primary function is data extraction, not presentation.  If AnalyzeCL were
  579. to list all possible formats of reports, based on the collected data, the
  580. CL Analysis file would get bigger and bigger, without actually presenting
  581. any more information. Such customized displays can be produced by running
  582. ACL output into other Mac applications, such as Excel or Cricketdraw, and
  583. I will try and make this easier in the future.  I may set up a Hypercard
  584. script that does some of this sort of thing so that anyone who wants a
  585. special format will be able to do so without too much trouble.  The
  586. shareware program InfoMaker can be used to produce tab-delineated files
  587. (suitable for most spreadsheets or databases) from AnalyzeCL reports if
  588. each report are placed in its own headerless file.  When I add the Mac
  589. interface, more flexibility in output formats will be possible.
  590.  
  591. QUED/M, a really nice text editor with macro capability, can also be used
  592. to customize ACL output to taste.  The same editor can also be used to
  593. change old 'Flags; output to a format which will be logged by AnalyzeCL. 
  594. Specifically, the command
  595.   Change ":b*External Application \(.*\) accessed." to 
  596.   "External <\1> called..."  "gat-wA"
  597. will fix everything with a single click. ( The '\1' is replaced by whatever
  598. was in the parentheses in the first expression, on a string-by-string basis.)
  599.  
  600.  
  601.  
  602.  
  603. *** Version 0.9 ***  4/30/89
  604.  
  605. Bug fixes:
  606. A bug in the monthly report (that showed up with 12 month reports)
  607. was fixed.
  608.  
  609. A limitation in metered menu reporting was dicovered and alleviated.  The
  610. first three metered menus that are encountered are monitored, meaning that
  611. total time spent in each menu is estimated.  AnaluzeCL uses units of .5
  612. minutes and a variable size of 16 bits, thus running into overflow at 546
  613. hours.  This means that any menu total that is over 546 hours will be
  614. incorrect.  For example, if a BBS is busy 100% of the time (744) hours,
  615. and 74% of the time is spent in a particular menu, then that total will be
  616. over 546 (744*.74) and will come up with an incorrect menu usage for that
  617. month.  This result is not very likely in a single month, but can occur on
  618. a moderately busy BBS in a yearly totals.  Why don't I change it?  The
  619. alternative is to extend the variable size to 32 bits, so, given three
  620. fields, adding another 6 bytes of storage per record.  This sub-record is
  621. used extensively throughout AnalyzeCL, so the added requirements would add
  622. up.  The problem will not occur in most cases, so I choose to leave it as
  623. is.
  624.  
  625. The default year (for start/end date entry) was changed to
  626. 1989.  Version .891 used a 1988 default.
  627.  
  628.  
  629. Some tweaking of date outputs was done so that no embedded blanks are
  630. present.  For example, what was '2/ 1/89/ will now be '2/01/89'.
  631.  
  632. RRHost 2.0 Compatibility:
  633. Both 9600 and 19200 baud rates are supported, so that AnalyzeCL will
  634. report the percentage of calls coming in at those rates.
  635.  
  636. 'Launching' of external applications is now recognized.  All launched
  637. external applications are listed along with the last date they were
  638. referenced and how many times they were launched.
  639.  
  640.  
  641. Netmail Compatibility:
  642. AnalyzeCL detects TSYNCH events and lists the number that occur
  643. within a logging interval.  No special processing is done for either
  644. TSYNCH or scheduled netmail events, i.e. they are ignored, but such events
  645. will not affect the other reports.  I was doubtful that more information
  646. would be particularly useful, and the effort would be nontrivial.  I'm
  647. open to suggestions on the matter, but I don't guarantee support of any
  648. RRHost add-ons that I don't use, and Tabby is one of them.
  649.  
  650.  
  651. Two line system 'support':
  652. I place 'support' in quotes for a reason.  I don't have two lines and have
  653. no plans to add one.  This particular capability is provided 'as is', in
  654. the hope that will be useful.  If there are bugs, I reserve the right to
  655. drop the capability rather than fix it.  However, I'm always willing to
  656. listen to suggestions.
  657.  
  658. Assumptions:
  659. 1)  The sysop has separate CL's for each phone line.
  660. 2)  The CL's cover the same interval of time.  (This is important.)
  661. If one CL covers 1 day and the other covers a week, the usage percentages 
  662. will be incorrect.
  663. 3) If CL's are chained, all of the Callerlogs for the first line must be
  664. processed prior to switching to the CLs of the second line.
  665.  
  666. Add  >2nd "<name of 2nd callerlog"  at the end of the first callerlog.
  667. The first character of the line must be '>', the second character must be 
  668. '2', and the path of the second CL must be in double quotes.
  669.  
  670. Run AnalyzeCL in the normal fashion.  Most tables and reports will be 
  671. identical except for the usage report.  It will look something like this:
  672.  
  673.    4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23  0  1  2  3
  674.    |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  675. 21 ::::###::::%%%:::#####:#:%%###::#$$###:##::%%$$#:#:##:#:%$%$::######::::
  676.  
  677. where
  678. # indicates that line #1 was used,
  679. % indicates that line #2 was used,
  680. $ indicated that both lines were used, and
  681. : indicates that neither line was used within a given 20 minute interval.
  682.  
  683. No other reports are line-specific.  For example, AnalyzeCL does not keep
  684. track of how many calls were received on each line.  However, it is simple
  685. to run AnalyzeCL on the individual lines to get this information.